package com.powergisol.gis.dao;

import com.powergisol.gis.dto.ZkTcSwDTO;
import com.powergisol.gis.entity.TabProject;
import com.powergisol.gis.entity.TabZkShuiwei;
import com.powergisol.gis.entity.TabZkTuceng;
import com.powergisol.gis.entity.TabZuankong;
import com.powergisol.gis.vo.TuCengVO;
import com.powergisol.gis.vo.ZKAddVO;
import com.powergisol.gis.vo.ZuankongVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.security.core.parameters.P;

import java.util.List;
import java.util.Map;

@Mapper
public interface TabZkMapper {

    List<TabZuankong> getZk(@Param("settingId") Integer settingId, @Param("ZKBH") String ZKBH,@Param("ZKX")String ZKX,@Param("ZKY")String ZKY);

    List<TabZkTuceng> getTc(@Param("settingId") Integer settingId, @Param("ZKBH") String ZKBH,@Param("ZKX")String ZKX,@Param("ZKY")String ZKY);

    List<TabZkShuiwei> getSw(@Param("settingId") Integer settingId, @Param("ZKBH") String ZKBH,@Param("ZKX")String ZKX,@Param("ZKY")String ZKY);

    List<TabProject> getP(@Param("settingId") Integer settingId);

    List<TabZuankong> getZKBySettingId(@Param("settingIds") List<String> settingIds);

    List<TabZkShuiwei> getSWS(@Param("z") TabZkShuiwei z);

    List<TabZkTuceng> getTCS(@Param("z") TabZkTuceng z);

    List<ZuankongVO> getZKBySettingIdTwo(@Param("settingIds") List<String> settingIds);

    List<TuCengVO> getTCSTWO(@Param("zkTcSwDTOList") List<ZkTcSwDTO> zkTcSwDTOList);

    List<TabZkShuiwei> getSWStWO(@Param("zkTcSwDTOList") List<ZkTcSwDTO> zkTcSwDTOList);


    List<TuCengVO> getTcs(@Param("settingId") Integer settingId, @Param("ZKBH") String ZKBH);

    List<TabZkShuiwei> getSws(@Param("settingId") Integer settingId, @Param("ZKBH") String ZKBH);
    List<TabZkShuiwei> getSwse(@Param("settingId") Integer settingId, @Param("ZKBH") String ZKBH);
    int addZK(List<TabZuankong> zuankongs);

    int addZKTC(List<TabZkTuceng> tabZkTucengs);

    int addZKSW(List<TabZkShuiwei> tabZkShuiweis);

    List<String> getAllClass();

    int updateZuankong(@Param("zuankong") TabZuankong zuankong, @Param("zkTcSwDTO") ZkTcSwDTO zkTcSwDTO);

    int deleteTC(@Param("zkTcSwDTO") ZkTcSwDTO zkTcSwDTO);

    int deleteSW(@Param("zkTcSwDTO") ZkTcSwDTO zkTcSwDTO);

    int deleteZK(ZkTcSwDTO zkTcSwDTO);

    int deleteSWs(List<ZkTcSwDTO> zkTcSwDTO);

    int deleteTCs(List<ZkTcSwDTO> zkTcSwDTO);

    int deleteZKs(List<ZkTcSwDTO> zkTcSwDTO);

    List<Map<String,Object>> getZkfcSort(@Param("settingId") String settingId);


    int updateSW(List<TabZkShuiwei> sw);

    int updateTC(List<TabZkTuceng> tc);

    int deletetcById(@Param("tcId") Integer tcId);

    int deleteswById(@Param("swId") Integer swId);

    int deleteZkByIndex(@Param("zkTcSwDTO") ZkTcSwDTO zkTcSwDTO, @Param("dataIndex") Integer dataIndex);

    int getMaxDataIndex(@Param("zkTcSwDTO") ZkTcSwDTO zkTcSwDTO);

    List<String> getZuank(@Param("settingId") Integer settingId);

    List<ZuankongVO> getZuanKS(@Param("settingId") Integer settingId);

    void deleteSw(@Param("swIds") List<Integer> swIds);

    void deleteTc(@Param("tcIds") List<Integer> tcIds);

    void deleteZk(@Param("zkIds") List<Integer> zkIds);

    List<TabZkShuiwei> getSwBySet(@Param("settingId")Integer settingId);

    List<TabZkTuceng> getTcBySet(@Param("settingId")Integer settingId);

    List<TabZuankong> getZkBySet(@Param("settingId")Integer settingId);

    List<ZuankongVO> getZuan(@Param("settingId") Integer settingId);
}
